home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 May / CMCD0504.ISO / Software / Freeware / Programare / dspack / DSPACK231.exe / {app} / Demos / D5 / SampleGrabber / Unit1.pas < prev   
Encoding:
Pascal/Delphi Source File  |  2003-01-27  |  1.8 KB  |  78 lines

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, ExtCtrls, DSPack;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     FilterGraph: TFilterGraph;
  12.     VideoWindow: TVideoWindow;
  13.     SampleGrabber: TSampleGrabber;
  14.     Image: TImage;
  15.     OpenPlay: TButton;
  16.     Snapshot: TButton;
  17.     OpenDialog: TOpenDialog;
  18.     CallBack: TCheckBox;
  19.     procedure OpenPlayClick(Sender: TObject);
  20.     procedure SnapshotClick(Sender: TObject);
  21.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  22.     procedure SampleGrabberBuffer(sender: TObject; SampleTime: Double;
  23.       pBuffer: Pointer; BufferLen: Integer);
  24.   private
  25.     { DΘclarations privΘes }
  26.   public
  27.     { DΘclarations publiques }
  28.   end;
  29.  
  30. var
  31.   Form1: TForm1;
  32.  
  33. implementation
  34.  
  35. {$R *.dfm}
  36.  
  37. procedure TForm1.OpenPlayClick(Sender: TObject);
  38. begin
  39.   if OpenDialog.Execute then
  40.   begin
  41.     FilterGraph.Active := false;
  42.     FilterGraph.Active := true;
  43.     FilterGraph.RenderFile(OpenDialog.FileName);
  44.     FilterGraph.Play;
  45.   end;
  46. end;
  47.  
  48. procedure TForm1.SnapshotClick(Sender: TObject);
  49. begin
  50.   SampleGrabber.GetBitmap(Image.Picture.Bitmap)
  51. end;
  52.  
  53. // procedure TForm1.SampleGrabberBuffer(sender: TObject; Buffer: TBufferCB);
  54. // begin
  55. // if CallBack.Checked then
  56. //    SampleGrabber.GetBitmap(Image.Picture.Bitmap, Buffer)
  57. // end;
  58.  
  59. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  60. begin
  61.   CallBack.Checked := false;
  62.   FilterGraph.ClearGraph;
  63.   FilterGraph.Active := false;
  64. end;
  65.  
  66. procedure TForm1.SampleGrabberBuffer(sender: TObject; SampleTime: Double;
  67.   pBuffer: Pointer; BufferLen: Integer);
  68. begin
  69.   Image.Picture.Bitmap.Canvas.Lock;
  70.   try
  71.     SampleGrabber.GetBitmap(Image.Picture.Bitmap, pBuffer, BufferLen);
  72.   finally
  73.     Image.Picture.Bitmap.Canvas.UnLock;
  74.   end;
  75. end;
  76.  
  77. end.
  78.